<style type="text/css">

#previewMailing
{
	border: 1px solid #ccc;
	padding: 10px;
	width: 700px;
}

</style>

<?
	if (empty($metrix['cnt']))
		$metrix['cnt'] = 0;
	if (empty($metrix['all']))
		$metrix['all'] = 0;

	$ready = ($metrix['cnt'] == $metrix['all'] && $metrix['cnt'] != 0);
	$currentPercent = ($metrix['all'] == 0)?0:(intval(($metrix['cnt']/$metrix['all'])*10000)/100);
?>

<a href="/admin/mailing">Перейти к списку</a> |
<a href="/admin/mailing/edit/<?=$mailing->id?>">Редактировать</a> |
<a href="/admin/mailing/refresh/<?=$mailing->id?>">Обновить состояние</a>

<div id="previewMailing">
	<h2 class="centered"><?=$mailing->pTitle?></h2>
	<?=$mailing->pText?>
</div>

<p>
<?
	echo 'Создано '.printDate($mailing->dCreated, true);
	if ($mailing->dUpdated)
		echo ', обновлено '.printDate($mailing->dUpdated, true);
?>
</p>

<?//=printr($mailing)?>

<hr>

<? if ($ready): ?>
<div id="sendStatus">Рассылка закончена</div>
<? else: ?>
<button id="mailingStart">Начать</button>
<div id="sendStatus">Рассылка не началась</div>
<? endif; ?>

<div class="rounded progress" id="progressBar">
	<div style="width:<?=$currentPercent?>%;" id="progress" class="bar"></div>
	<div id="progressValue"><?=$currentPercent?>%</div>
</div>

<div id="reportArea"></div>

<script>
	var paused = true;
	var start = 0;		// Начало рассылки
	var cnt = <?=$metrix['cnt']?>;
	var all = <?=$metrix['all']?>;
	var lastCheck = <?=now()?>;
	
	$(function(){
		
		$("#mailingStart").click(function() {
			if (start == 0)
				start = new Date();
			
			$.ajax({
				async: false,
				type: 'POST',
				url: '/admin/mailing/setMailing',
				data: {id: <?=$mailing->id?>},
				dataType: 'json'
			}).done(function(data){
				if (typeof data.error != 'undefined')
				{
					alert(data.error);
					return false;
				}
				all = (typeof data.all == 'undefined')?0:parseInt(data.all);
				cnt = (typeof data.cnt == 'undefined')?0:parseInt(data.cnt);
			});

			if (all == 0)
				return false;

			var percent = parseInt((cnt/all)*10000)/100;
			$("#sendStatus").html(cnt+'/'+all+': '+percent+'%');
			
			paused = !paused;
			$("#mailingStart").text(paused?'Продолжить':'Приостановить');
			
			if (!paused)
			{
				checkStatus();
				$("#progressBar").addClass("active");
			}
			else
				$("#progressBar").removeClass("active");
		});
		
		if (!paused)
		{
			start = new Date();
			checkStatus();
		}

	});
	
	function checkStatus()
	{
		if (paused == true) return false;
		
		$.post('/admin/mailing/check', {id: <?=$mailing->id?>}, function(data)
		{
			if (typeof data.error != 'undefined')
			{
				alert(data.error);
				return false;
			}
			
			if (typeof data.message != 'undefined')
			{
				if (data.message == 'done')
				{
					$("#sendStatus").html('100% (' + ((new Date() - start)/1000) + ' sec)');
					$("#progress").css("width", "100%");
					$("#mailingStart").attr("disabled", "true").text('Рассылка закончена');
					$("#progressValue").text("100%");
					
					$("#progressBar").removeClass("active");
					return;
				}

				if (data.message == 'limit')
				{
					var percent = parseInt((cnt/all)*10000)/100;
					$("#sendStatus").html(cnt+'/'+all+': '+percent+'% - сработало ограничение, скоро рассылка продолжится');
					setTimeout('checkStatus()', 500);
				}
			}
			else
			{
				var color = (data.status == '1')?'green':'red';
				var message = data.email + ' :: ' + data.status;
				
				var now = new Date();
				$('#reportArea').prepend('<b style="color:'+color+'">'+now.toLocaleTimeString()+": "+ message + '</b><br>');
				cnt = parseInt(data.cnt);

				var percent = parseInt((cnt/all)*10000)/100;
				$("#sendStatus").html(cnt+'/'+all+': '+percent+'%');
				$("#progress").css("width", percent+"%");
				$("#progressValue").text(percent+"%");
				setTimeout('checkStatus()', 100);
			}

		}, 'json');
	}
</script>